package com.example.demo.bean;


import java.util.HashMap;
import java.util.Map;

public class JsonData {
    private boolean success;

    private String msg;

    private Object data;

    private Integer code = ErrorCode.SUCCESS.getStatus();//默认200

    public JsonData(boolean ret) {
        this.success = ret;
    }

    public static JsonData success(Object object, String msg) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object;
        jsonData.msg = msg;
        return jsonData;
    }

    public static JsonData success(Object object , int code , String msg) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object ;
        jsonData.code = code ;
        jsonData.msg = msg;
        return jsonData;
    }

    public static JsonData success(Object object) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object ;
        jsonData.msg = "成功";
        return jsonData;
    }

    public static JsonData success() {
        return new JsonData(true);
    }

    public static JsonData success(String msg) {
        JsonData jsonData = new JsonData(true);
        jsonData.msg = msg;
        return jsonData;
    }

    public static JsonData fail(int code ,String msg ) {
        JsonData jsonData = new JsonData(false);
        jsonData.msg = msg;
        jsonData.code = code;
        return jsonData;
    }

    public static JsonData fail(String code ,String msg ) {
        JsonData jsonData = new JsonData(false);
        jsonData.msg = msg;
        jsonData.code = Integer.valueOf(code);
        return jsonData;
    }

    public Map<String, Object> toMap() {
        HashMap<String, Object> result = new HashMap<String, Object>();
        result.put("ret", success);
        result.put("code", code);
        result.put("msg", msg);
        result.put("data", data);
        return result;
    }

//    @Override
//    public String toString() {
//        return "{" +
//                "success=" + success +
//                ", msg='" + msg + '\'' +
//                ", code=" + code +
//                ", data=" + data +
//                '}';
//    }


    @Override
    public String toString() {
        return "{" +
                "\"success\":\"" + success +
                "\", \"msg\":\"" + msg + '\'' +
                "\", \"data\":\"" + data +
                "\", \"code\":\"" + code +
                "\"}";
    }

    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }
}
